<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Concept: Analysis Mechanism</title>
<meta name="uma.type" content="Concept">
<meta name="uma.name" content="analysis_mechanism">
<meta name="uma.presentationName" content="Analysis Mechanism">
<meta name="element_type" content="concept">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="_0gvqoMlgEdmt3adZL5Dmdw"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Concept: Analysis Mechanism</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/concept.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">An Analysis Mechanism is a conceptual representation of an Architectural Mechanism.</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/concepts/arch_mechanism_2932DFB6.html" guid="_mzxI0A4LEduibvKwrGxWxA">Architectural Mechanism</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><p>
    An Analysis Mechanism is a conceptual representation of an <a class="elementLink" href="./../../../core.tech.common.extend_supp/guidances/concepts/arch_mechanism_2932DFB6.html" guid="_mzxI0A4LEduibvKwrGxWxA">Architectural Mechanism</a>. Over time, Analysis Mechanisms are refined into <a class="elementLink" href="./../../../core.tech.common.extend_supp/guidances/concepts/design_mechanism_CE197B4E.html" guid="_w2ACwA4LEduibvKwrGxWxA">Design Mechanism</a>s&nbsp;and, later, into <a class="elementLink" href="./../../../core.tech.common.extend_supp/guidances/concepts/implementation_mechanism_C92E670B.html" guid="_0LcUkA4LEduibvKwrGxWxA">Implementation Mechanism</a>s.
</p>
<p>
    Analysis Mechanisms&nbsp;allow the developer to focus on understanding the requirements without getting distracted by
    the specifics of a complex implementation. They are a way of abstracting away the complexity of the solution, so people
    can better comprehend the problem.
</p>
<p>
    Analysis Mechanisms are described in simple terms:
</p>
<ul>
    <li>
        <strong>Name:</strong> Identifies the mechanism.
    </li>
    <li>
        <strong>Basic attributes:</strong> Define the requirements of the mechanism.
    </li>
</ul>
<p>
    You can identify Analysis Mechanisms top-down, from previous knowledge, or bottom-up, meaning that you discover them as
    you proceed.
</p>
<p>
    In the top-down mode, you are guided by experience -- you know that certain problems are present in the domain and will
    require certain kinds of solutions. Examples of common architectural problems that might be expressed as mechanisms
    during analysis are: persistence, transaction management, fault management, messaging, and inference engines. The
    common aspect of all of these is that each is a general capability of a broad class of systems, and each provides
    functionality that interacts with or supports the basic application functionality. The Analysis Mechanisms support
    capabilities required in the basic functional requirements of the system, regardless of the platform that it is
    deployed upon or the implementation language. Analysis Mechanisms also can be designed and implemented in different
    ways. Generally, there will be more than one design mechanism that corresponds with each Analysis Mechanism. There may
    also be more than one way of implementing each design mechanism.
</p>
<p>
    The bottom-up approach is where Analysis Mechanisms ultimately originate. They are created as the you see, perhaps
    faintly at first, a common theme emerging from a set of solutions to various problems. For example: There is a need to
    provide a way for elements in different threads to synchronize their clocks, and there is a need for a common way of
    allocating resources. <a class="elementLink" href="./../../../core.tech.common.extend_supp/guidances/concepts/analysis_mechanism_8369C159.html" guid="_0gvqoMlgEdmt3adZL5Dmdw">Analysis Mechanism</a>s, which simplify the language of analysis, emerge from these
    patterns.
</p>
<p>
    Identifying an Analysis Mechanism means that you identify a common, perhaps implicit&nbsp;subproblem, and you give it a
    name. Initially, the name might be all that exists. For example, the system will require a persistence
    mechanism.&nbsp;Ultimately, this mechanism will be implemented through the collaboration of various classes, some of
    which do not deliver application functionality directly, but exist only to support it. Very often these support classes
    are located in the middle or lower layers of a layered architecture, thereby providing a common support service to all
    application-level classes.
</p>
<p>
    If the subproblem that you identify is common enough, perhaps a pattern exists from which the mechanism can be
    instantiated, probably by binding existing classes and implementing new ones, as required by the pattern. An Analysis
    Mechanism produced this way will be abstract, and it will require further refinement throughout design and
    implementation work.
</p>
<p>
    You can see examples of how Architectural Mechanisms can be represented in <a class="elementLinkWithType" href="./../../../core.tech.common.extend_supp/guidances/examples/architectural_mechanism_attributes_B0ECA2F7.html" guid="_eQ_s8Om5Edupia_tZIXEqg">Example: Architectural Mechanism Attributes</a>.
</p></td>
</tr>
</table>
</div>
<div class="sectionHeading">More Information</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Concepts</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/concepts/arch_mechanism_2932DFB6.html" guid="_mzxI0A4LEduibvKwrGxWxA">Architectural Mechanism</a>
</li>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/concepts/design_mechanism_CE197B4E.html" guid="_w2ACwA4LEduibvKwrGxWxA">Design Mechanism</a>
</li>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/concepts/implementation_mechanism_C92E670B.html" guid="_0LcUkA4LEduibvKwrGxWxA">Implementation Mechanism</a>
</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Examples</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/examples/architectural_mechanism_attributes_B0ECA2F7.html" guid="_eQ_s8Om5Edupia_tZIXEqg">Architectural Mechanism Attributes</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright"><p> This program and the accompanying materials are made available under the<br />
  <a href="http://www.eclipse.org/org/documents/epl-v10.php" target="_blank">Eclipse 
  Public License V1.0</a>, which accompanies this distribution. </p><p/><p> <a class="elementLink" href="./../../../core.default.release_copyright.base/guidances/supportingmaterials/openup_copyright_C3031062.html" guid="_UaGfECcTEduSX6N2jUafGA">OpenUP Copyright</a></p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
